Skip to content

분석녹음 화면 QA 반영#160

Merged
HamBeomJoon merged 11 commits into
developfrom
fix/#153-analysis-record-QA
Jul 9, 2026
Merged

분석녹음 화면 QA 반영#160
HamBeomJoon merged 11 commits into
developfrom
fix/#153-analysis-record-QA

Conversation

@HamBeomJoon

Copy link
Copy Markdown
Contributor

📌 작업 내용

발표명 설정

  • 발표명 10자 제한 설정
  • 위에 progress bar 끝부분 radius 설정 (minor)
  • 발표입력 완료하거나 입력 중 배경 눌러 키보드 사라졌을 때에도 textfield 비활성화 상태 적용

발표상황 설정

  • 이미 선택된 유형을 다시 클릭시 unselected로 변경
  • 뒤로갔다 다시 돌아올 시 세션 유지 (minor)
  • 유저가 accordion에서 어떤 버튼을 선택했을 시, 바로 해당 accordion이 닫히고 다음 accordion이 열리는 형식 적용

대본 파일 업로드

  • 제공하는 파일 형식에 txt > .txt로 "." 추가

음성 녹음 화면

  • 최초 진입 스낵바 메시지 문장 줄넘김 적용

녹음 확인 화면

  • 재생 중 일시 정지 시 UI표시 추가
  • 분석하기 버튼 클릭시 재생중인 음성 종료

음성 파일 업로드 화면

  • 화면 설명 텍스트 수정
  • 제공하는 파일 형식에 . 추가

분석 로딩 화면

  • 에러케이스 대응

🧩 관련 이슈

closes #153

📸 스크린샷

스크린샷 2026-07-09 13 08 01 Screenshot_1783569126 Screenshot_1783568170 Screenshot_1783568180

- `PresentationScheduleScreen`의 발표 제목 입력 필드(`PrezelTextField`)에 10자 글자 수 제한(`maxLength`) 추가
- `AnalysisStepLayout` 진행 바 끝부분에 `RoundedCornerShape` 적용
- `PrezelButtonArea`의 배경색을 `PrezelTheme.colors.bgRegular`로 명시적 지정
- 스크롤 가능한 콘텐츠 존재 여부에 따라 하단 버튼 영역의 구분선 표시 기능 추가
- `PrezelTextField`에 IME 가시성을 결합하여 실제 타이핑 시에만 포커스 상태를 표시하도록 개선
- `VoiceRecordingContent` 및 `AnalysisStepLayout`에서 콘텐츠의 스크롤 가능 여부를 감지하는 로직 구현
- `VoiceRecordingButtonArea` 관련 컴포넌트에 `showDivider` 파라미터를 추가하여 배경 노출 제어 연동
- `PrezelAccordion`에 외부 상태 제어(`expanded`, `onExpandedChange`) 기능 추가
- 상황 설정 단계에서 옵션 선택 시 다음 아코디언이 자동으로 열리는 로직 구현
- 이미 선택된 옵션 클릭 시 선택 해제되는 토글 기능 추가 및 관련 `UiIntent` 수정
- `AnalysisBackStateReducer` 수정으로 상황 설정 화면에서 뒤로가기 시 입력 데이터 유지
- `PrezelDatePicker`의 확인 버튼 활성화 조건을 날짜 선택 여부(`null` 체크)로 변경
- 대본 입력 방식(업로드/직접 입력) 전환 시 기존 데이터 삭제 경고 다이얼로그 추가
- `PrezelTextArea` 및 업로드 카드가 화면 높이에 맞춰 확장되도록 레이아웃 개선
- `PrezelTabSize`의 `MEDIUM`을 `SMALL`로 명칭 변경 및 전반적인 탭 크기 조정
- `AnalysisStepLayout`에 콘텐츠 스크롤 여부 제어 옵션(`contentScrollable`) 추가
- 대본 및 음성 파일 지원 형식 표기 등 문자열 리소스 수정 및 다이얼로그 문구 추가
- 녹음 중 사용자 음성 크기를 실시간으로 감지하여 스낵바 피드백을 제공하는 기능 추가
- 최근 3초간 무음 상태가 지속될 경우 "준비되면 이어서 말해주세요" 메시지 노출
- 최근 3초간 평균 음량이 기준치보다 낮을 경우 "조금 더 크게 말해볼까요?" 메시지 노출
- `AnalysisFlowViewModel`에서 분석 제출 또는 재분석 시작 시 오디오 재생을 중단하도록 수정
- 실시간 피드백에 필요한 문자열 리소스 및 볼륨 임계값 상수 정의
- `AudioSessionState.ReadyToPlay` 상태에서 현재 시간과 전체 시간을 함께 표시하도록 수정
- 현재 시간 및 구분선(`/`)에 `textDisabled` 색상 스타일 적용
- `AudioSessionState` 관련 프로퍼티의 불필요한 들여쓰기 수정
- 지원되는 오디오 확장자(`m4a`, `mp4`, `mp3`) 검증 및 파일 이름 추출 로직 추가
- 분석 API 호출 시 15초 타임아웃(`withTimeout`) 적용 및 예외 발생 시 재시도 처리
- 내비게이션 이동 시 스택 초기화(`clearStack`) 옵션 추가 및 실패 시 복귀 로직 개선
- 오류 유형에 따른 재시도 단계(`audioRetryStep`) 및 실패 핸들링 로직 세분화
- 오디오 세션 에러 발생 시 분석 실패 화면(`ANALYSIS_FAILED`)으로 전환되도록 수정
- `VoiceRecordingChromeUi` 모델 추가 및 보이스 크롬 UI 상태 관리 연동
- 대본이 비어 있는 경우(`isBlank`) 보이스 크롬 영역을 확장하는 레이아웃 로직 적용
- 녹음 피드백 상태에 따라 보이스 크롬의 타이틀, 그래디언트, 웨이브폼 가시성을 동적으로 변경
- `PrezelVoiceChrome`이 상태별 고정 문자열 대신 전달받은 `titleText`를 출력하도록 수정
- `VoiceRecordingContent` 내 대본 영역의 공백 처리 및 최소 높이(`heightIn`) 설정 추가
- 녹음 준비 상태 등에 따른 스낵바 노출 및 UI 피드백 로직 개선
- `VoiceRecordingChromeTopBar`에서 사용되지 않는 `recordingState` 파라미터 제거
- `DefaultVoiceChromeHeight` 상수를 제거하고 `PrezelVoiceChrome` 레이아웃의 고정 높이 설정 삭제
- `VoiceChrome` 영역이 고정 높이 대신 내부 콘텐츠나 외부 제약에 따라 유연하게 구성되도록 수정
@HamBeomJoon HamBeomJoon self-assigned this Jul 9, 2026
@HamBeomJoon HamBeomJoon requested a review from moondev03 as a code owner July 9, 2026 04:13
@HamBeomJoon HamBeomJoon added the 🔧 fix 정상 동작해야 하는 기능의 결함 수정 label Jul 9, 2026
- `VoiceRecordingScreen`, `ScriptInputScreen`, `PresentationSituationScreen` 내 대형 UI 블록을 소형 컴포저블 함수로 추출하여 가독성 개선
- `AnalysisFlowViewModel` 내 레코딩 인텐트 처리 로직을 `handleRecordingIntent` 확장 함수로 분리
- `analyzePresentationRecording` 및 `reAnalyzePresentationRecording` 로직을 최상위 함수로 이동하여 구조화
- `VoiceRecordingTopBar` 및 `VoiceRecordingScriptText` 등 녹음 화면 내 UI 요소 컴포넌트화
- 상황 설정 화면의 각 아코디언 항목을 별도 함수로 분리하여 코드 복잡도 완화
@HamBeomJoon HamBeomJoon merged commit 9c5f2df into develop Jul 9, 2026
1 check passed
@HamBeomJoon HamBeomJoon deleted the fix/#153-analysis-record-QA branch July 9, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔧 fix 정상 동작해야 하는 기능의 결함 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

분석녹음 화면 QA 반영

2 participants